/**
*      author: Y_Yao
*      created: 2025-04-18 09:25:46
**/

#include<bits/stdc++.h>

#define int LL
using namespace std;
using LL = long long;
const LL LLINF = 9e18;
const int INF = 0x3f3f3f3f;
const int N = 3e5 + 7;
int n,k;
int d[N];
int cnt = 0;
pair<int,int> c[N];
bool vis[N];

void solve()
{
    cin >> n >> k;
    for(int i = 1;i <= n;i++)
    {
        for(int j = i * 2;j <= n;j += i)
        {
            d[j]++;
        }
    }

    for(int i = 1;i <= n;i++)
    {
        d[i] += d[i-1];
    }


    if(d[n] < k)
    {
        cout << "No" << endl;
        return;
    }



    for(int i = 1;i <= n;i++)
    {
        if(d[i] > k)
        {
            n = i;
            break;
        }
    }

    for(int i = n;i * 2 > n;i--)
    {
        c[++cnt] = {d[i] - d[i-1],i};
    }

    sort(&c[1],&c[1 + cnt]);
    int cur = d[n] - k;

    for(int i = cnt;i >= 1;i--)
    {
        if(cur >= c[i].first)
        {
            cur -= c[i].first;
            vis[c[i].second] = true;
        }
    }
    cnt = 0;
    for(int i = 1;i <= n;i++)
    {
        if(!vis[i]) cnt++;
    }

    cout << "Yes" << endl;
    cout << cnt << endl;
    for(int i = 1;i <= n;i++)
    {
        if(!vis[i])
        {
            cout << i << " ";
        }
    }
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t = 1;
    // cin >> t;
    while(t--)
    {
        solve();
    }
    return 0;
}